package com.ruoyi.system.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.system.domain.Order;
import com.ruoyi.system.domain.WeekResult;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * 充电订单信息Service接口
 * 
 * @author ruoyi
 * @date 2025-06-28
 */
public interface IOrderService 
{
    /**
     * 查询充电订单信息
     * 
     * @param oId 充电订单信息主键
     * @return 充电订单信息
     */
    public Order selectOrderByOId(Integer oId);

    /**
     * 查询充电订单信息列表
     * 
     * @param order 充电订单信息
     * @return 充电订单信息集合
     */
    public List<Order> selectOrderList(Order order);

    /**
     * 新增充电订单信息
     * 
     * @param order 充电订单信息
     * @return 结果
     */
    public int insertOrder(Order order);

    /**
     * 修改充电订单信息
     * 
     * @param order 充电订单信息
     * @return 结果
     */
    public int updateOrder(Order order);

    /**
     * 批量删除充电订单信息
     * 
     * @param oIds 需要删除的充电订单信息主键集合
     * @return 结果
     */
    public int deleteOrderByOIds(Integer[] oIds);

    /**
     * 删除充电订单信息信息
     * 
     * @param oId 充电订单信息主键
     * @return 结果
     */
    public int deleteOrderByOId(Integer oId);

    /**
     * 查询今日充电度数
     */
    public Double selectTodayc();

    /**
     * 查询今日充电次数
     */
    public Integer selectCountTodayc();

    /**
     * 查询昨天充电度数
     */
    public Double selectYesterdayc();

    /**
     * 查询今日充电次数
     */
    public Integer selectCountYesterdayc();

    /**
     * 查询本周充电度数
     */
    public List<WeekResult> selectWeekc();

    /**
     * 查询本周充电次数
     */
    public List<WeekResult> selectCountWeekc();

    /**
     * 查询上周充电度数
     */
    public List<WeekResult> selectLastWeekc();

    /**
     * 查询上周充电次数
     */
    public List<WeekResult> selectCountLastWeekc();

    /**
     * 查询支付方式占比
     */
    public List<Map<String,Object>> selectTypePercentage();

    /**
     * 查询今日充电订单
     */
    public List<Map<String,Object>> selectTodayOrder();
}
